matlab版开源GNSS

您所在的位置:网站首页 gnss-sdr 移植 matlab版开源GNSS

matlab版开源GNSS

2024-05-24 03:54| 来源: 网络整理| 查看: 265

接上一篇解读,主要是在上一篇整体把握的基础上,理解其中的关键细节,文章按照小标题的形式组织:

定位结果

这套定位解算代码,对配套中频数据进行解算,可以得到定位结果。从结果来看,应该是静态数据,因为定位结果展示中对所有解算结果取了平均。

在如下链接中输入解算位置平均后的经纬度

定位结果为科罗拉多大学博尔德校区的一个建筑。

解算时间

对每个历元解算结果进行绘图时,并没有将解算的标准时间/GPS时间作为横坐标,本文对解算时间进行探究。

ephemeris.m函数对导航电文解析了时间。

周内秒来自每一个子帧的交接字的1-17bit。GPS时间Z计数器包括两个部分,10位二进制周数和19位二进制周内秒。这17bit数据取自Z计数器19位二进制周内秒的高17位,而19位计数周内秒,每一个数值表示1.5s,所以将这17bit数据乘以6表示当前子帧结束时的周内秒。函数最后一行,由于只计算了最后一个子帧结束时的周内秒,-30对应到数据帧开始时刻的周内秒(每个子帧6s,5个子帧30s)。

%% Compute the time of week (TOW) of the first sub-frames in the array ==== % Also correct the TOW. The transmitted TOW is actual TOW of the next % subframe and we need the TOW of the first subframe in this data block % (the variable subframe at this point contains bits of the last subframe). TOW = bin2dec(subframe(31:47)) * 6 - 30;

周数来自子帧1第61到70bit,即子帧1遥测字和交接字结束紧接着的10个bit。(代码不完整)

function [eph, TOW] = ephemeris(bits, D30Star) %% Decode all 5 sub-frames ================================================ for i = 1:5 %--- Decode the sub-frame id ------------------------------------------ % For more details on sub-frame contents please refer to GPS IS. subframeID = bin2dec(subframe(50:52)); %--- Decode sub-frame based on the sub-frames id ---------------------- % The task is to select the necessary bits and convert them to decimal % numbers. For more details on sub-frame contents please refer to GPS % ICD (IS-GPS-200D). switch subframeID case 1 %--- It is subframe 1 ------------------------------------- % It contains WN, SV clock corrections, health and accuracy eph.weekNumber = bin2dec(subframe(61:70)) + 1024; eph.accuracy = bin2dec(subframe(73:76)); eph.health = bin2dec(subframe(77:82)); eph.T_GD = twosComp2dec(subframe(197:204)) * 2^(-31); eph.IODC = bin2dec([subframe(83:84) subframe(197:204)]); eph.t_oc = bin2dec(subframe(219:234)) * 2^4; eph.a_f2 = twosComp2dec(subframe(241:248)) * 2^(-55); eph.a_f1 = twosComp2dec(subframe(249:264)) * 2^(-43); eph.a_f0 = twosComp2dec(subframe(271:292)) * 2^(-31);

ephemeris.m中解析出来的时间信息,在定位解算中没有作为定位结果输出,仅用于satpos中计算卫星位置和钟差。可以在ephemeris.m函数后对周内秒和周数进行打印。

打印结果表示:跟踪的所有卫星第1个遥测字开始的时间都是第1321周的587454秒。可以在如下网站中将GPS时间转换为UTC时间,时间为2005年5月7 日。对应第一个解算结果的时间。

180°相位模糊度问题

由于采用IQ解调,将I路的即时积分信号的正负判断生成导航电文时,可能使生成的导航电文与原电文完全反相。解决方案是寻找帧同步时,判断解出来的帧头是否反相,从而决定是否将所有数据反相。实际代码中并没有对帧头相关结果的正负进行判断,没有考虑180°相位模糊问题。

精度问题

这里涉及到两个关键的精度,一个是伪距精度,一个是定位精度。伪距精度由采样频率决定,38.192MHz的采样频率对应于8m的伪距精度。这里的伪距精度是从信号处理层面的限制来讲的,由接收机本身的硬件决定。

定位精度的分析通常基于



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3